#仅做日志分割、tar打包备份，不会删除原有日志！！

#access日志路径
LOGPATH=/root/access.log

#输出目录
OUTDIR=~/BAK/nginx-access


#需核对日期列
########### access日志样例   以空格分割日期在第4列（$4）  （日期后是：时间） #######################
#10.96.20.252 - - [20/Nov/2021:00:01:41 +0800] "POST /ClientUpgrade/clientmgt/B
#第四列为：[20/Nov/2021:00:01:41
#日期所在列数
DATEF='$4'











 
##########################     以下无需修改    #################################
echo "请等待，正则进行日志分割……"
####获取日期
cat $LOGPATH | grep "^[0-9]" |awk '{print '$DATEF'}'|awk -F "[" '{print $2}'|awk -F ":" '{print $1}'|sort -u >  /tmp/tmpdate
#本机IP
IPLAN=`hostname -I|awk '{print $1}'`
#分隔符
LINE='.'
#创建输出目录
mkdir -p $OUTDIR
#获取日志名称
FILENAME=`echo $LOGPATH|awk -F "/" '{print $NF}'`
#for循环分割
for i in `cat /tmp/tmpdate`
do
cd $OUTDIR
echo "正在分割 $i"
#删除日期中'/'
echo $i|sed 's#/##g' > /tmp/DMY
DDATE=`cat /tmp/DMY`
cat $LOGPATH |grep "$i" > $FILENAME$LINE$DDATE$LINE$IPLAN
#tar 打包
TAREX=.tar.gz
tar -zcf $FILENAME$LINE$DDATE$LINE$IPLAN$TAREX  $FILENAME$LINE$DDATE$LINE$IPLAN
done
echo "分割完成：输出目录：$OUTDIR"
